
// 格式1
// acc: 累计器：初始值 (容器，不断汇总结果)
// cur: 当前值
// 数组.reduce(function(acc,cur,idx,src){
//    return 下一轮循环的acc
// },初始值)

// 格式2
// acc: 累计器：第一个元素 (容器，不断汇总结果)
// cur: 当前值：第二个元素
// 数组.reduce(function(acc,cur,idx,src){
//    return 下一轮循环的acc
// })

// var arr = [{ value: 1 }, { value: 2 }, { value: 3 }]
// // 计算所有元素的value的和

// const result = arr.reduce(function(acc, cur) {
//   console.log(acc, cur)
//   return cur.value + acc
// }, 0)

// console.log(result)

var arr = [{ label: '男', value: 1 }, { label: '女', value: 0 }]

// function f(arr) {
//   return arr.reduce(function(acc, cur) {
//     // 每一轮循环是给对象中添加一个新属性，返回
//     const key = cur.value
//     const val = cur.label
//     acc[key] = val
//     return acc
//   }, {})
// }
function f(arr) {
  return arr.reduce((acc, cur) => {
    // 每一轮循环是给对象中添加一个新属性，返回
    // acc[cur.value] = cur.label
    // return acc
    // eslint-disable-next-line no-return-assign
    // eslint-disable-next-line no-sequences
    return (acc[cur.value] = cur.label, acc)
  }, {})
}
var obj = f(arr)
console.log(obj) //  {'1': '男',  '0': '女'}
